/*
 * TokenizerExpression.h
 *
 *  Created on: 27/10/2008
 *      Author: Thiago A. L. Genez, Pedro Sanches
 */

#ifndef TOKENIZEREXPRESSION_H_
#define TOKENIZEREXPRESSION_H_

#include "../Sintatico/Parametro.h"
#include <string>
#include <iostream>
#include <list>
#include <vector>

class TokenizerExpression {
public:
	TokenizerExpression();
	TokenizerExpression(string, string, string, int);

	void setToken(string);
	void setCategory(string);
	void setType(string);
	void setNumberParameters(int);
	void addParameters(Parametro*);
	void setParametros(list<Parametro*> );
	void setLine(int);

	int getLine() const;
	list<Parametro*>getListParameter() const;
	Parametro* getParametro(int);
	string getToken() const;
	string getCategory() const;
	string getType() const;

	int getNumberParameters() const;

	virtual ~TokenizerExpression();

private:

	string token;

	/*
	 * "procedimento" "funcao" "variavel" "numero" "simbolo" "booleano"
	 */
	string category;

	/*
	 * "i" integer  "b" boolean
	 */
	string type;

	/*
	 * numero de parametros
	 */
	int numberParameters;

	int linha;

	list<Parametro*> parameter;
};

#endif /* TOKENIZEREXPRESSION_H_ */
